package com.koron.plan.web.patrolplan.mapper;

import com.koron.plan.web.patrolplan.bean.entity.PatrolPlanPointBean;
import com.koron.plan.web.patrolplan.bean.query.PatrolPointQuery;
import com.koron.plan.web.patrolplan.bean.vo.PatrolPlanEquipVO;
import com.koron.plan.web.patrolplan.bean.vo.PatrolPlanPointDetailVO;
import com.koron.plan.web.patrolplan.bean.vo.PatrolPlanPointVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * (WPlanPatrolPoint)表数据库访问层
 *
 * @author twcao
 * @since 2021-10-26 16:52:56
 */
public interface PatrolPlanPointMapper {

    /**
     * 通过ID查询单条数据
     * @param pointId 巡视点id
     * @return 实例对象
     */
    PatrolPlanPointDetailVO queryById(@Param("pointId")String pointId);

    List<PatrolPlanPointDetailVO> queryBatchById(@Param("pointIds") List<String> pointIds);

    /**
     * 查询多条数据
     * @param query  查询条件
     * @return 对象列表
     */
    List<PatrolPlanPointVO> queryList(PatrolPointQuery query);

    /**
     * 新增/编辑数据
     * @param bean 实例对象
     * @return 实例对象
     */
    int saveOrUpdate(PatrolPlanPointBean bean);

    /**
     * 通过巡视点id删除数据
     * @param pointId 巡视点id
     * @return 是否成功
     */
    int deleteById(String pointId);

    /**
     * 通过巡视点id逻辑删除数据
     * @param pointId 巡视点id
     * @return 是否成功
     */
    int hiddenById(String pointId);

    /**
     * 统计巡视点被引用的个数
     * @param pointId
     * @return
     */
    int countRefNum(String pointId);

    List<PatrolPlanEquipVO> select_equip_list(@Param("pointId")String pointId,@Param("language") String language);
}

